package day05.KeTangDaiMa.Lambda;
//无参无返回值抽象方法的练习
/*- 定义一个接口(Eatable)，里面定义一个抽象方法：void eat();
- 定义一个测试类(EatableDemo)，在测试类中提供两个方法
  - 一个方法是：useEatable(Eatable e)
  - 一个方法是主方法，在主方法中调用useEatable方法*/
public interface Eatable {
    void eat();
}
class EatableImpl implements Eatable{
    @Override
    public void eat() {
        System.out.println("一天一苹果，医生远离我！");
    }
}
class EatableDemo{
    public static void main(String[] args) {
        //从主方法中调用useEatble方法
        Eatable e = new EatableImpl();
        useEatable(e);
        //匿名内部类
        useEatable(new Eatable() {
            @Override
            public void eat() {
                System.out.println("一天一香蕉，医生远离我");
            }
        });
        //Lambda表达式
        useEatable(()-> System.out.println("一天一香蕉，医生远离我"));
    }

    private static void useEatable(Eatable e) {
        e.eat();
    }
}
